package models

import "time"

// CouponLog 优惠券记录表
type CouponLog struct {
	Id         int64     `json:"id" xorm:"pk autoincr"`
	UserId     int64     `json:"user_id" xorm:"not null comment('用户ID') index"`
	CouponId   int64     `json:"coupon_id" xorm:"not null comment('优惠券ID')"`
	Type       string    `json:"type" xorm:"varchar(20) not null comment('记录类型')"`
	OrderId    int64     `json:"order_id" xorm:"not null default 0 comment('关联订单ID')"`
	Amount     int64     `json:"amount" xorm:"not null default 0 comment('订单金额(分)')"`
	Discount   int64     `json:"discount" xorm:"not null default 0 comment('优惠金额(分)')"`
	Remark     string    `json:"remark" xorm:"varchar(255) not null default '' comment('备注')"`
	OperatorId int64     `json:"operator_id" xorm:"not null default 0 comment('操作人ID')"`
	CreateTime time.Time `json:"create_time" xorm:"not null created comment('创建时间')"`
}

// TableName 表名
func (CouponLog) TableName() string {
	return "coupon_log"
}

// 优惠券记录类型常量
const (
	CouponLogTypeReceive = "receive" // 领取
	CouponLogTypeUse     = "use"     // 使用
	CouponLogTypeExpire  = "expire"  // 过期
	CouponLogTypeCancel  = "cancel"  // 取消使用
)
